1. Field
Example aspects of the invention relate generally to devices, systems, methods, and computer programs for modeling network packet traffic, and more particularly to modeling traffic in terms of Leaky Bucket parameters.
2. Related Art
Many present-day networking applications apply constraints to the flow of packet traffic in the network. For example, a network service provider might offer multiple levels of service, e.g., different maximum download speeds, at different costs. A user selects a level of service, and the service provider's system limits the user's download rate based on a service contract, which specifies the maximum download rate for the user. Often these applications utilize Leaky Buckets (LBs) to limit packet traffic to the specified “rate” of data flow.
In particular, LBs have a state that varies between an upper bound (defined in terms of the tolerance) and a lower bound (usually zero). In some LBs, when a conforming packet arrives the state increases by an amount proportional to the packet length and inversely proportional to the LB rate, and whenever the state is greater than zero, the state decreases (i.e., the LB “leaks downward”) at a constant rate of one unit per unit time. In other words, the bucket's “level” rises as it is filled with packet data, and the level decreases as packet data leaks out of the bucket. When the state leaks to the lower bound of zero, the state stops leaking and remains at zero. At the time of a packet arrival, the state is not allowed to exceed the upper bound, or “tolerance,” often abbreviated “L” and defined in units of seconds. An arriving packet that finds the state above the upper bound is by definition nonconforming. One example of a “leak downward” LB is the F-GCRA (Frame-Based Generic Cell Rate Algorithm).
Some other leaky buckets work in the opposite direction, for example, the state represents a credit that is increased at a constant rate up to an upper bound and that is decreased (consumed) by an arriving conforming packet.
Two LB parameters are typically used to characterize how an LB limits packet traffic: the rate of data flow; and a tolerance (L). The rate is usually expressed as its reciprocal (T). In F-GCRA, for example, T is the inverse of Minimum Cell Rate (MCR). The tolerance (L) is sometimes referred to as a maximum burst size, a burst tolerance, or a delay variation tolerance. Accordingly, utilizing an LB requires setting the LB parameters.
However, it can be difficult to specify appropriate LB parameters T and L for a given traffic flow. As a consequence, for example, a user might not know whether to choose a high-speed service or a low-speed service because the user does not know how to characterize his/her traffic. Similarly, without knowledge of the characteristics of the traffic within a network, a service provider might have difficulty determining how to best allocate bandwidth within the network to accommodate various traffic flows.